iT邦幫忙

2021 iThome 鐵人賽

DAY 18
1
Modern Web

用vue.js寫出一個實用的科內分享網站系列 第 18

Day18 vue.js新增文章

  • 分享至 

  • xImage
  •  

延續昨日
今天我們來新增專案
首先需要先新增一個Addproject.vue
新增path 以及修改navbar裡面新增專案的path
首先我們需要一個簡單的layout
如下圖
這邊就是幾個純粹的text filed 或是 text area v-model綁定 沒什麼好說的
https://ithelp.ithome.com.tw/upload/images/20210930/20141007CroSCVzoW1.png

比較特別的是 專案日期 點開來會有日期可以選https://ithelp.ithome.com.tw/upload/images/20210930/201410070W02fGkTzo.png

以下是我的程式碼 我是參考vuetify的datepicker(感謝vuetify讚嘆vuetify)
https://vuetifyjs.com/en/components/date-pickers/
https://ithelp.ithome.com.tw/upload/images/20210930/20141007lVwG3I2BsF.png

直接複製vuetify網站的程式碼來使用
再來用v-model綁定 datepicker
還有專案狀態 點開來可以選擇專案狀態
https://ithelp.ithome.com.tw/upload/images/20210930/20141007YhfGm6ZRBf.png

以下是程式碼https://ithelp.ithome.com.tw/upload/images/20210930/20141007Tf4nv1IuWE.png

這邊使用v-moel綁定statue 再來:item status 則是在data中設定

https://ithelp.ithome.com.tw/upload/images/20210930/20141007fiL1dpLYtx.png

這就是整個layout 就陽春但是能用就好XDhttps://ithelp.ithome.com.tw/upload/images/20210930/20141007frExMMXnav.png

再來就是重新填寫的按鈕

在html tag 裡面下一個ref 再來rest這個refs就好 參考day14
 methods:{
   reset () {
        this.$refs.form.reset()
      },

https://ithelp.ithome.com.tw/upload/images/20210930/20141007YlfA6hsU8B.png

一樣要在moounted 接session

mounted(){
      // let user=localStorage.getItem('user-info');
       let user=sessionStorage.getItem('user-info');
    
      
      if(!user){
        this.$router.push({name:'Login'})
        alert('請先登入')
      }
     
      this.username=JSON.parse(user).username
      this.useraccount=JSON.parse(user).id
     
    }
}

最後就是送出按鈕
https://ithelp.ithome.com.tw/upload/images/20210930/20141007e96r3RmPQ3.png

Function submit
基本上跟註冊的方法沒2樣只是多了一些東西而已

async submit(){
     const result = await axios.post(`${this.db_api}`+"articles",{
         title:this.title,
         person:this.username,
         status:this.statue,
         content:this.content,
         time:this.time,
         useraccount:this.useraccount,
         url:this.url,
         swagger:this.swagger,
         api:this.api,
         api_val:this.api_val
         
        
       })
       
       if(result.status==201){ 
             alert("成功")
         this.$router.push({name:'Home'})
       }
   }

再來就是新增文章試試看!!
https://ithelp.ithome.com.tw/upload/images/20210930/201410077qZkPb8evh.png

https://ithelp.ithome.com.tw/upload/images/20210930/20141007WfowcCt2lI.png

嘟嘟嚕成功新增文章了
https://ithelp.ithome.com.tw/upload/images/20210930/20141007ZVVzuqMisv.png

https://ithelp.ithome.com.tw/upload/images/20210930/20141007dps3jh4Zzo.png

再確認一下db.jsonhttps://ithelp.ithome.com.tw/upload/images/20210930/20141007iEzPsARXZ6.png

至於為什麼要有欄位swagger api api_val則是我們公司提出需要這幾個欄位
所以我先設定 也沒有下rule所以可以允許空值

好了今天就差不多這樣了
明天就從我的專案開始吧!


上一篇
Day17 vue.js 連接資料庫顯示文章
下一篇
Day19 vue.js之我的專案顯示
系列文
用vue.js寫出一個實用的科內分享網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言